home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / PIL / PalmImagePlugin.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  10KB  |  107 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __version__ = '1.0'
  5. import Image
  6. import ImageFile
  7. import StringIO
  8. _Palm8BitColormapValues = ((255, 255, 255), (255, 204, 255), (255, 153, 255), (255, 102, 255), (255, 51, 255), (255, 0, 255), (255, 255, 204), (255, 204, 204), (255, 153, 204), (255, 102, 204), (255, 51, 204), (255, 0, 204), (255, 255, 153), (255, 204, 153), (255, 153, 153), (255, 102, 153), (255, 51, 153), (255, 0, 153), (204, 255, 255), (204, 204, 255), (204, 153, 255), (204, 102, 255), (204, 51, 255), (204, 0, 255), (204, 255, 204), (204, 204, 204), (204, 153, 204), (204, 102, 204), (204, 51, 204), (204, 0, 204), (204, 255, 153), (204, 204, 153), (204, 153, 153), (204, 102, 153), (204, 51, 153), (204, 0, 153), (153, 255, 255), (153, 204, 255), (153, 153, 255), (153, 102, 255), (153, 51, 255), (153, 0, 255), (153, 255, 204), (153, 204, 204), (153, 153, 204), (153, 102, 204), (153, 51, 204), (153, 0, 204), (153, 255, 153), (153, 204, 153), (153, 153, 153), (153, 102, 153), (153, 51, 153), (153, 0, 153), (102, 255, 255), (102, 204, 255), (102, 153, 255), (102, 102, 255), (102, 51, 255), (102, 0, 255), (102, 255, 204), (102, 204, 204), (102, 153, 204), (102, 102, 204), (102, 51, 204), (102, 0, 204), (102, 255, 153), (102, 204, 153), (102, 153, 153), (102, 102, 153), (102, 51, 153), (102, 0, 153), (51, 255, 255), (51, 204, 255), (51, 153, 255), (51, 102, 255), (51, 51, 255), (51, 0, 255), (51, 255, 204), (51, 204, 204), (51, 153, 204), (51, 102, 204), (51, 51, 204), (51, 0, 204), (51, 255, 153), (51, 204, 153), (51, 153, 153), (51, 102, 153), (51, 51, 153), (51, 0, 153), (0, 255, 255), (0, 204, 255), (0, 153, 255), (0, 102, 255), (0, 51, 255), (0, 0, 255), (0, 255, 204), (0, 204, 204), (0, 153, 204), (0, 102, 204), (0, 51, 204), (0, 0, 204), (0, 255, 153), (0, 204, 153), (0, 153, 153), (0, 102, 153), (0, 51, 153), (0, 0, 153), (255, 255, 102), (255, 204, 102), (255, 153, 102), (255, 102, 102), (255, 51, 102), (255, 0, 102), (255, 255, 51), (255, 204, 51), (255, 153, 51), (255, 102, 51), (255, 51, 51), (255, 0, 51), (255, 255, 0), (255, 204, 0), (255, 153, 0), (255, 102, 0), (255, 51, 0), (255, 0, 0), (204, 255, 102), (204, 204, 102), (204, 153, 102), (204, 102, 102), (204, 51, 102), (204, 0, 102), (204, 255, 51), (204, 204, 51), (204, 153, 51), (204, 102, 51), (204, 51, 51), (204, 0, 51), (204, 255, 0), (204, 204, 0), (204, 153, 0), (204, 102, 0), (204, 51, 0), (204, 0, 0), (153, 255, 102), (153, 204, 102), (153, 153, 102), (153, 102, 102), (153, 51, 102), (153, 0, 102), (153, 255, 51), (153, 204, 51), (153, 153, 51), (153, 102, 51), (153, 51, 51), (153, 0, 51), (153, 255, 0), (153, 204, 0), (153, 153, 0), (153, 102, 0), (153, 51, 0), (153, 0, 0), (102, 255, 102), (102, 204, 102), (102, 153, 102), (102, 102, 102), (102, 51, 102), (102, 0, 102), (102, 255, 51), (102, 204, 51), (102, 153, 51), (102, 102, 51), (102, 51, 51), (102, 0, 51), (102, 255, 0), (102, 204, 0), (102, 153, 0), (102, 102, 0), (102, 51, 0), (102, 0, 0), (51, 255, 102), (51, 204, 102), (51, 153, 102), (51, 102, 102), (51, 51, 102), (51, 0, 102), (51, 255, 51), (51, 204, 51), (51, 153, 51), (51, 102, 51), (51, 51, 51), (51, 0, 51), (51, 255, 0), (51, 204, 0), (51, 153, 0), (51, 102, 0), (51, 51, 0), (51, 0, 0), (0, 255, 102), (0, 204, 102), (0, 153, 102), (0, 102, 102), (0, 51, 102), (0, 0, 102), (0, 255, 51), (0, 204, 51), (0, 153, 51), (0, 102, 51), (0, 51, 51), (0, 0, 51), (0, 255, 0), (0, 204, 0), (0, 153, 0), (0, 102, 0), (0, 51, 0), (17, 17, 17), (34, 34, 34), (68, 68, 68), (85, 85, 85), (119, 119, 119), (136, 136, 136), (170, 170, 170), (187, 187, 187), (221, 221, 221), (238, 238, 238), (192, 192, 192), (128, 0, 0), (128, 0, 128), (0, 128, 0), (0, 128, 128), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0))
  9.  
  10. def build_prototype_image():
  11.     image = Image.new('L', (1, len(_Palm8BitColormapValues)))
  12.     image.putdata(range(len(_Palm8BitColormapValues)))
  13.     palettedata = ()
  14.     for i in range(len(_Palm8BitColormapValues)):
  15.         palettedata = palettedata + _Palm8BitColormapValues[i]
  16.     
  17.     for i in range(256 - len(_Palm8BitColormapValues)):
  18.         palettedata = palettedata + (0, 0, 0)
  19.     
  20.     image.putpalette(palettedata)
  21.     return image
  22.  
  23. Palm8BitColormapImage = build_prototype_image()
  24. _FLAGS = {
  25.     'custom-colormap': 16384,
  26.     'is-compressed': 32768,
  27.     'has-transparent': 8192 }
  28. _COMPRESSION_TYPES = {
  29.     'none': 255,
  30.     'rle': 1,
  31.     'scanline': 0 }
  32.  
  33. def o16b(i):
  34.     return chr(i >> 8 & 255) + chr(i & 255)
  35.  
  36.  
  37. def _save(im, fp, filename, check = 0):
  38.     if im.mode == 'P':
  39.         rawmode = 'P'
  40.         bpp = 8
  41.         version = 1
  42.     elif im.mode == 'L' and im.encoderinfo.has_key('bpp') and im.encoderinfo['bpp'] in (1, 2, 4):
  43.         bpp = im.encoderinfo['bpp']
  44.         im = im.point((lambda x, shift = 8 - bpp, maxval = (1 << bpp) - 1: maxval - (x >> shift)))
  45.         im.mode = 'P'
  46.         rawmode = 'P;' + str(bpp)
  47.         version = 1
  48.     elif im.mode == 'L' and im.info.has_key('bpp') and im.info['bpp'] in (1, 2, 4):
  49.         bpp = im.info['bpp']
  50.         im = im.point((lambda x, maxval = (1 << bpp) - 1: maxval - (x & maxval)))
  51.         im.mode = 'P'
  52.         rawmode = 'P;' + str(bpp)
  53.         version = 1
  54.     elif im.mode == '1':
  55.         rawmode = '1;I'
  56.         bpp = 1
  57.         version = 0
  58.     else:
  59.         raise IOError, 'cannot write mode %s as Palm' % im.mode
  60.     if check:
  61.         return check
  62.     
  63.     im.load()
  64.     cols = im.size[0]
  65.     rows = im.size[1]
  66.     rowbytes = ((cols + (16 / bpp - 1)) / 16 / bpp) * 2
  67.     transparent_index = 0
  68.     compression_type = _COMPRESSION_TYPES['none']
  69.     flags = 0
  70.     if im.mode == 'P' and im.info.has_key('custom-colormap'):
  71.         flags = flags & _FLAGS['custom-colormap']
  72.         colormapsize = 1026
  73.         colormapmode = im.palette.mode
  74.         colormap = im.getdata().getpalette()
  75.     else:
  76.         colormapsize = 0
  77.     if im.info.has_key('offset'):
  78.         offset = (rowbytes * rows + 16 + 3 + colormapsize) / 4
  79.     else:
  80.         offset = 0
  81.     fp.write(o16b(cols) + o16b(rows) + o16b(rowbytes) + o16b(flags))
  82.     fp.write(chr(bpp))
  83.     fp.write(chr(version))
  84.     fp.write(o16b(offset))
  85.     fp.write(chr(transparent_index))
  86.     fp.write(chr(compression_type))
  87.     fp.write(o16b(0))
  88.     if colormapsize > 0:
  89.         fp.write(o16b(256))
  90.         for i in range(256):
  91.             fp.write(chr(i))
  92.             if colormapmode == 'RGB':
  93.                 fp.write(chr(colormap[3 * i]) + chr(colormap[3 * i + 1]) + chr(colormap[3 * i + 2]))
  94.                 continue
  95.             if colormapmode == 'RGBA':
  96.                 fp.write(chr(colormap[4 * i]) + chr(colormap[4 * i + 1]) + chr(colormap[4 * i + 2]))
  97.                 continue
  98.         
  99.     
  100.     ImageFile._save(im, fp, [
  101.         ('raw', (0, 0) + im.size, 0, (rawmode, rowbytes, 1))])
  102.     fp.flush()
  103.  
  104. Image.register_save('Palm', _save)
  105. Image.register_extension('Palm', '.palm')
  106. Image.register_mime('Palm', 'image/palm')
  107.